/**
 * 
 */
package com.xth8013.as.util;

import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

/**
 * @author Administrator
 *
 */
public class JsonUtils<T> {

	

	/**
	 * 
	 * @param jsonData
	 * @return
	 */
	public List<T> getListFromJson (String jsonData)
	{     
		Type listType = new TypeToken<List<T>>(){}.getType();
		Gson gson=new Gson();
		ArrayList<T> list=gson.fromJson(jsonData, listType);
		return list;

	}

	/**
	 * 
	 * ͨ������gson jar�� д�� json ����
	 * @param list
	 * @return
	 */
	public String toJsonData(List<T> list)
	{

		Gson gson=new Gson();//����google�ṩ��gson��һ��list����д��json��ʽ���ַ���
		String jsonstring=gson.toJson(list);
		return jsonstring;
	}
	

	/**
	 * 
	 * @param jsonData
	 * @param T 
	 * @return
	 */
	public T getObjectFromJson (String jsonData)
	{    
		T obj = null;
		List<T> list = getListFromJson(jsonData);
		if (list!=null&&list.size()>0) {
			obj = list.get(0);
		}
		
		return obj;

	}
	
	/**
	 * 
	 * ͨ������gson jar�� д�� json ����
	 * @param list
	 * @return
	 */
	public String toJsonData(T obj)
	{
		String jsonString=null;

		List<T> list = new ArrayList<T>();
		
		if (obj!=null) {
			list.add(obj);
			jsonString = toJsonData(list);
		}
		
		return jsonString;
	}
}
